#include "widget.h"
#include "ui_widget.h"
#include <QRegExpValidator>//头文件

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    // 就需要给单行输入框设置验证器. 基于正则表达式来完成验证的~~（希望手机号码是以开头，并且只有11位数字）
    QRegExp regExp("^1\\d{10}$");//"^1"表示以数字1开头，“\d{10}”表示重复出现10次数字，要加上“\”表示转义字符（因为C++/C语言的语法特性），$表示结尾
    ui->lineEdit->setValidator(new QRegExpValidator(regExp));//lineEdit销毁时会自动调用QRegExpValidator的析构函数
}

Widget::~Widget()
{
    delete ui;
}


void Widget::on_lineEdit_textEdited(const QString &text)
{
    QString content = text;
    int pos = 0;
    if (ui->lineEdit->validator()->validate(content, pos) == QValidator::Acceptable) {//注意这个validate函数的参数以及传给它的参数类型
        // 验证通过（可以点击提交按钮，所以一开始就在ui界面设置了不可选中）
        ui->pushButton->setEnabled(true);
    } else {
        // 验证不通过
        ui->pushButton->setEnabled(false);
    }
}
